﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace IURIP
{
    /// <summary>
    /// The IAbstractor interface. An abstractor can get data from a specified data source
    /// </summary>
    public interface IAbstractor
    {
        /// <summary>
        /// Gets the task
        /// </summary>
        ITask Task { get; }
        /// <summary>
        /// Gets the abstractor name
        /// </summary>
        string Name { get; }
        /// <summary>
        /// Gets original data from the data source
        /// </summary>
        /// <param name="dataBlock">the data block</param>
        /// <returns></returns>
        XmlNode GetDataSource(IDataBlock dataBlock, IFilter filter);

        /// <summary>
        /// Initalize the abstractor by configuration file
        /// </summary>
        /// <param name="node"></param>
        void InitByConfiguration(XmlNode node);
    }
}
